    package cn.csq.design.creatation.prototype;

    /**
     * @author csq
     * @version 1.0.0
     * @ClassName MainTest.java
     * @Description 原型模式测试
     * @createTime 2022年01月03日 16:24:00
     */
    public class MainTest {
        //原型模式：是用于创建重 复的对象，同时又能保证性能

        public static void main(String[] args) throws CloneNotSupportedException {
            SelfMybatisImpl3 selfMybatis = new SelfMybatisImpl3();
            //直接从缓存中获取，直接返回 这个操作是十分危险的

            //得到的是克隆体
            User zhangsan1 = selfMybatis.getUser("zhangsan");
            System.out.println("1 ===> " + zhangsan1);

            //如果对对象进行修改
            zhangsan1.setName("lisi");
            System.out.println("after update ===>" + zhangsan1);

            //得到的是克隆体
            User zhangsan2 = selfMybatis.getUser("zhangsan");
            System.out.println("2 ===> " + zhangsan2);

            //得到的是克隆体
            User zhangsan3 = selfMybatis.getUser("zhangsan");
            System.out.println("3 ===> " + zhangsan3);

            //得到的是克隆体
            User zhangsan4 = selfMybatis.getUser("zhangsan");
            System.out.println("4 ===> " + zhangsan4);

            System.out.println(zhangsan2 ==zhangsan4);

        }

    }
